package main

import (
	"bufio"
	"fmt"
	"io/ioutil"
	"os"
)

//写文件的三种方式
// 1.os.OpenFile()
//os.O_APPEND 追加
//os.O_CREATE 创建
//os.O_EXCL  Excel
//os.O_RDONLY 只读
//os.O_RDWR	  读写
//os.O_SYNC   同步写
//os.O_TRUNC   清空
//os.O_WRONLY  只写

func osOpenFileIo() {
	ret, err := os.OpenFile("./xx.log", os.O_CREATE|os.O_WRONLY|os.O_TRUNC, 0644)
	if err != nil {
		fmt.Println("写文件出错了")
	}
	defer ret.Close()
	ret.Write([]byte("shidahdsi\n"))
	ret.WriteString("djksajdlsajd\n")
}

// bufio
func bufioWriteFile() {
	ret, err := os.OpenFile("./xx.log", os.O_CREATE|os.O_WRONLY|os.O_TRUNC, 0644)
	if err != nil {
		fmt.Println("写文件出错了")
		return
	}
	defer ret.Close()
	w := bufio.NewWriter(ret)
	w.WriteString("你好") //写到缓存
	w.Flush()           // 写到文件

}

//ioutil
func ioutilWriteFile() {
	str := "致幻真牛"
	err := ioutil.WriteFile("./zhihuan.log", []byte(str), 0777)
	if err != nil {
		fmt.Println("写文件出错了")
		return
	}
}
func main() {
	// osOpenFileIo()
	// bufioWriteFile()
	ioutilWriteFile()
}
